package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JRadioButton;

import modeloCarmenSanDiego.Comisaria;
import modeloCarmenSanDiego.Juego;
import modeloCarmenSanDiego.caracteristicas.Cabello;
import modeloCarmenSanDiego.caracteristicas.Hobby;
import modeloCarmenSanDiego.caracteristicas.Senia;
import modeloCarmenSanDiego.caracteristicas.Sexo;
import modeloCarmenSanDiego.caracteristicas.Vehiculo;
import vista.Ventana;

public class BotonEmitirOrdenListener implements ActionListener {
	
	private Ventana ventana;
	private Juego juego;
	
	public BotonEmitirOrdenListener(Ventana ventana, Juego juego){
		this.ventana = ventana;
		this.juego = juego;
	}
	
	public void actionPerformed(ActionEvent arg0) {
		Comisaria comisaria = this.juego.getComisaria();
		JRadioButton botonCabello = ventana.getBotonSeleccionadoCabello();
		JRadioButton botonHobby = ventana.getBotonSeleccionadoHobby();
		JRadioButton botonSenia = ventana.getBotonSeleccionadoSenia();
		JRadioButton botonSexo = ventana.getBotonSeleccionadoSexo();
		JRadioButton botonVehiculo = ventana.getBotonSeleccionadoVehiculo();
		if (botonSexo != null) // Chequeos
			comisaria.setSexo(Sexo.valueOf(botonSexo.getText().toUpperCase().replaceAll("\\s+","")));
		if (botonHobby != null)
			comisaria.setHobby(Hobby.valueOf(botonHobby.getText().toUpperCase().replaceAll("\\s+","")));
		if (botonCabello != null)
			comisaria.setCabello(Cabello.valueOf(botonCabello.getText().toUpperCase().replaceAll("\\s+","")));
		if (botonSenia != null)
			comisaria.setSenia(Senia.valueOf(botonSenia.getText().toUpperCase().replaceAll("\\s+","")));
		if (botonVehiculo != null)
			comisaria.setVehiculo(Vehiculo.valueOf(botonVehiculo.getText().toUpperCase().replaceAll("\\s+","")));
		List<String> sospechosos = comisaria.buscarSospechosos();
		if (sospechosos.size() == 1){
			ventana.imprimirMensajeEnNuevaVentana("Se emitio orden de arresto para "+sospechosos.get(0));
		}
		else{
			if (sospechosos.size() == 0)
				ventana.imprimirMensajeEnNuevaVentana("No hay sospechosos que coincidan con los datos provistos.");
			else
				ventana.imprimirMensajeEnNuevaVentana("No se emitio orden, hay mas de un sospechoso.");
		}
		ventana.actualizarReloj();
		if (juego.getReloj().seTerminoElTiempo()){
			ventana.cerrarCaso(false); // se te acabo el tiempo amigo.
		}
	}

}
